package com.gdiss.www.service;

import com.gdiss.www.bo.UserLoginBo;
import com.gdiss.www.entity.User;
import com.gdiss.www.vo.request.RegisterVo;

/**
 * @author Velore
 * @date 2022/1/20
 **/
public interface UserService {

    /**
     * 用户登录
     * @param userLoginBo 登录账号和密码
     * @return String token
     */
    String login(UserLoginBo userLoginBo);

    /**
     * 用户信息更新
     * @param user 更新信息的用户
     * @return 是否更新成功
     */
    int updateUser(User user);

    /**
     * 删除用户
     * @param id id
     * @return 是否删除成功
     */
    int deleteUser(String id);

    /**
     * 通过id查询用户
     * @param id id
     * @return user
     */
    User queryUserById(int id);

    /**
     * 根据电话号查询用户
     * 用于登录
     * @param userPhoneNumber phone
     * @return user
     */
    User queryUserByUserPhoneNumber(String userPhoneNumber);

    /**
     * 根据邮箱地址查询用户
     * 用于登录
     * @param userEmailAddress email
     * @return user
     */
    User queryUserByUserEmailAddress(String userEmailAddress);

    /**
     * 通过微信openId查询用户
     * @param userWeChatOpenid 微信 openid
     * @return user
     */
    User queryUserByWeChatOpenid(String userWeChatOpenid);

    /**
     * 注册用户
     * @param registerVo 注册用户所需Vo类
     */
    void register(RegisterVo registerVo);
}
